package model

import (
	"wms/entity"
	"wms/pb"
)

type StockIn struct {
	StockInID        int64                      `json:"stockInID"`
	AuditStatus      pb.AuditStatus             `json:"auditStatus"`
	StockInNo        string                     `json:"stockInNo"`
	StockInType      string                     `json:"stockInType"`
	StockInWarehouse string                     `json:"stockInWarehouse"`
	Supplier         string                     `json:"supplier"`
	ContractNo       string                     `json:"contractNo"`
	StockInTime      string                     `json:"stockInTime"` // 入库时间
	Staff            string                     `json:"staff"`       // 入库人员
	Reviewer         string                     `json:"reviewer"`    // 审核人员
	SkuList          []byte                     `json:"-"`
	SkuListJson      []pb.StockItem             `json:"skuList"`
	CreatedAt        string                     `json:"createdAt"`
	UpdatedAt        string                     `json:"updatedAt"`
	ApplyTimeline    []*pb.StockInApplyTimeline `json:"applyTimeline"`
}

type StockOut struct {
	StockOutID    int64                    `json:"stockOutID"`    // 出库表单id
	AuditStatus   pb.AuditStatus           `json:"auditStatus"`   // 1待审核;2通过;3拒绝
	StockOutNo    string                   `json:"stockOutNo"`    // 出库单号
	StockOutType  string                   `json:"stockOutType"`  // 出库类型
	StockOutTime  string                   `json:"stockOutTime"`  // 出库时间
	ContractParty string                   `json:"contractParty"` // 签约方
	ProjectName   string                   `json:"projectName"`   // 项目名称
	ContractNo    string                   `json:"contractNo"`    // 合同号
	ReceivingDept string                   `json:"receivingDept"` // 领用部门
	Recipient     string                   `json:"recipient"`     // 领用人
	Staff         string                   `json:"staff"`         // 出库人员
	Reviewer      string                   `json:"reviewer"`      // 审核人员
	SkuList       []byte                   `json:"-"`             //
	SkuListJson   []pb.StockItem           `json:"skuList"`       //
	GatewayVerEnv string                   `json:"gatewayVerEnv"` // 网关版本环境
	IsUseSim      string                   `json:"isUseSim"`      // 是否使用SIM卡
	SimEnv        string                   `json:"simEnv"`        // SIM卡环境
	SimAreaUpate  string                   `json:"simAreaUpate"`  // SIM卡区域修改
	IsNeedAirWire string                   `json:"isNeedAirWire"` // 是否准备天线
	SimCardCount  string                   `json:"simCardCount"`  // SIM卡数量
	AirWireCount  string                   `json:"airWireCount"`  // 天线数量
	CreatedAt     string                   `json:"createdAt"`     //
	UpdatedAt     string                   `json:"updatedAt"`     //
	ApplyTimeline []*StockOutApplyTimeline `json:"applyTimeline"` //
}

type back_StockInApplyTimeline struct {
	StockApplyTimelineID int64             `json:"stockApplyTimelineID"`
	AuditStatus          pb.AuditStatus    `json:"auditStatus"`
	StockInNo            string            `json:"stockInNo"`
	StockApplyType       pb.StockApplyType `json:"stockApplyType"`
	PassRemark           string            `json:"passRemark"`
	DenyRemark           string            `json:"denyRemark"`
	CreatedAt            string            `json:"createdAt"`
	UpdatedAt            string            `json:"updatedAt"`
}

type StockOutApplyTimeline struct {
	StockApplyTimelineID int64             `json:"stockApplyTimelineID"`
	AuditStatus          pb.AuditStatus    `json:"auditStatus"`
	StockOutNo           string            `json:"stockOutNo"`
	StockApplyType       pb.StockApplyType `json:"stockApplyType"`
	PassRemark           string            `json:"passRemark"`
	DenyRemark           string            `json:"denyRemark"`
	CreatedAt            string            `json:"createdAt"`
	UpdatedAt            string            `json:"updatedAt"`
}

type StockItem struct {
	SkuType string `json:"skuType"`
	Mac     string `json:"mac"`
	Iccid   string `json:"iccid"`
	// Id      int64  `json:"id"`
}

// StockStatistics 库存统计
type StockStatistics struct {
	Raw []*entity.ViewStockCount `json:"raw"`
}

type SkuStock struct {
	Mac         string         `json:"mac"`         //
	Iccid       string         `json:"iccid"`       //
	StockStatus pb.StockStatus `json:"stockStatus"` // 最近状态1入库2出库
	WarehouseID int64          `json:"warehouseID"` // 仓库主键
	SkuCode     string         `json:"skuCode"`     //
	StockInAt   string         `json:"stockInAt"`   //
}
